package com.unitech.drink.api.beans;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 搜索饮品(含分页参数)的request参数对象
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class DrinkSearchParam implements Serializable {

    /*
     分页参数(必带)
     */
    @NotNull(message = "分页参数(页数)不能为空")
    private int page; // 首页从1开始
    @NotNull(message = "分页参数(行数)不能为空")
    private int pageSize;

    /*
    业务相关参数
     */
    private String name;

    // 价格区间搜索
    private BigDecimal minPrice;
    private BigDecimal maxPrice;

    // 上架时间区间搜索
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate startDate; // 开始时间
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate endDate; // 截止时间

    private Integer categoryId;

}
